package com.dlyk.config.converter;

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.dlyk.DlykServeApplication;
import com.dlyk.model.TDicValue;
import com.dlyk.result.DicEnum;

import java.util.List;

/**
 * @description: 线索来源转换器
 * Excel中的“车展会”--------》java类中的 3
 * Excel中的“网络广告”--------》java类中的 16
 *
 * @author: ajie
 * @date: 2024/7/26 21:53:15
 * @version: 1.0
 */
public class SourceConverter implements Converter<Integer> {

    /**
     * @description: 把excel中的数据转换为java类中的数据
     * 也就是：Excel中的“车展会”--------》java类中的3
     * @params: [cellData, contentProperty, globalConfiguration]
     * @return:
     * @author: ajie
     * @date: 2024/7/26 18:06
     */
    @Override
    public Integer convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
        //ReadCellData是excel中读取到的数据，是“车展会”、“网络广告”
        String cellSourceName = cellData.getStringValue();

        List<TDicValue> tDicValueList = (List<TDicValue>) DlykServeApplication.cacheMap.get(DicEnum.SOURCE.getCode());
        for (TDicValue tDicValue : tDicValueList) {
            Integer id = tDicValue.getId();
            String name = tDicValue.getTypeValue();
            //如果excel中的名字与java类中的名字相同，就返回java类中的id
            if (cellSourceName.equals(name)){
                return id;
            }
        }
        //遍历完dicValueList，没有找到对应的id，就返回-1
        return -1;

    }
}
